
#ifndef _CAR_PROTOCOL_GAEI_H
#define _CAR_PROTOCOL_GAEI_H

typedef struct gaei_packet_data{
    u8  FlagAA;
    u8  Flag55;
    u8  PackNumber;
    u16 DataLength;
    u8 Type;
    u8 ClassId;
    u8 EventCode;
    char data[0];
    //u8 CheckSun;
}__attribute__((packet)) gaei_packet_t;


#define CN_GAEI_PACKET_HEAD_FLAGAA    0xAA
#define CN_GAEI_PACKET_HEAD_FLAG55    0x55

#define CN_GAEI_PACKET_HEAD_LENGTH            ( sizeof(gaei_packet_t) )
#define CN_GAEI_PACKET_UART_MIN_LENGTH        ( CN_GAEI_PACKET_HEAD_LENGTH ) /* head -1[0xAA] + 1[checksun] */
#define CN_GAEI_PACKET_UART_MAX_LENGTH        ( 1024 )
#defien CN_GAEI_PACKET_PROTOCOL_MIN_LENGTH    ( CN_GAEI_PACKET_HEAD_LENGTH - 1 )   /* head - 2[0xAA,0x55] + 1[checksun] */

class ProtocolGaei : public ProtocolBase{

private:
    int gaei_init();


};
#endif /* _CAR_PROTOCOL_GAEI_H */
